﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Gqq.CSharpindepth2.DesignPatterns.Observer
{
    public delegate void ActionHandler();

    /// <summary>
    /// 被观察者，应该有以下方法。
    /// 1、一个事件，留给观察者注册。当调用Notify函数的时候触发这个事件（如 Cat Cry）
    /// 2、Notify函数，通知被观察者
    /// 3、Register函数，被观察者通过该函数注册到观察者。
    /// </summary>
    public interface ISubject
    {
        event ActionHandler AniAction;
        void Notify();
        void Register(ActionHandler a);
    }
}
